package com.xuxu.blog.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.HashSet;
import java.util.List;

/**
 * @author maxuxu
 * @email maxuxu019@gmail.com
 * @date 2022-08-21 22:22:31
 */
@Data
@TableName("user")
@AllArgsConstructor
@NoArgsConstructor
public class UserEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 主键id
	 */
	@TableId
	private Integer id;
	/**
	 * 用户名
	 */
	private String username;
	/**
	 * 手机号
	 */
	private String phone;
	/**
	 * 密码
	 */
	private String password;
	/**
	 * 性别
	 */
	private String sex;
	/**
	 * 年龄
	 */
	private Integer age;
	/**
	 * 个人介绍
	 */
	private String introduce;
	/**
	 * avatar
	 */
	private String avatar;
	/**
	 * 注册时间
	 */
	private String regtime;
	/**
	 * 昵称
	 */
    private String nick;
    /**
     * 家庭住址
     */
    private String address;
    /**
     * 角色
     */
    private Integer role;
    /**
     * 角色名
     */
    @TableField(exist = false)
    private String roleName;
    /**
     *
     */
    private String openid;
    /**
     * 积分
     */
    private Integer points;
    /**
     * 状态
     */
	@TableLogic(value = "1", delval = "0")
	private Integer status;

	/**
	 * 验证码
	 */
	@TableField(exist = false)
	private String code;
	/**
	 * token信息
	 */
	@TableField(exist = false)
	private String token;
	/**
	 * 用户权限，通过sql连接查询到的权限，在数据库中并无此字段
	 */
	@TableField(exist = false)
	private HashSet<PermissonEntity> permissions;
	/**
	 * 用户角色，同样是通过多表连接查询后的结果。
	 */
	@TableField(exist = false)
	private List<Integer> roles;

}
